/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ControladoresUI;

import Entidades.Catedratico;
import Entidades.Horariocatedratico;
import Entidades.Usuario;
import Ingresos.ICatedratico;
import Ingresos.IHorarioCatedratico;
import ManagersUI.HorarioDisponibleManager;
import Modelos.HorarioCatedraticoModel;
import Modelos.HorarioModel;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.ComboBox;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javax.swing.JOptionPane;

/**
 *
 * @author Carlos Andy T. Tiniguar <Tini0106Andy@gmail.com>
 */
public class HorarioDisponibleController {
    Usuario usuario; 
    Catedratico registro;
    HorarioDisponibleManager horarioDisponibleManager;
     @FXML private TableView<Horariocatedratico> tblHorarioDisponible;
    @FXML private TableColumn<Horariocatedratico, String> diaColumna;
    @FXML ComboBox cmbCatedratico;
    
    
    
    public void initialize() {}
  
    public void initManager(final HorarioDisponibleManager horarioDisponibleManager,Usuario usuario,Catedratico registro) {
        this.horarioDisponibleManager = horarioDisponibleManager;
        this.usuario = usuario;
        this.registro = registro;
        cargarCatedratico();
    }
    @FXML
    private void modificarBorrarHorariocatedratico(ActionEvent event){
        Horariocatedratico registroh = tblHorarioDisponible.getSelectionModel().getSelectedItem();
        if(registro == null){
            horarioDisponibleManager.abrirPanelHorarioDisponible(usuario,registro);            
        }
        else{
            horarioDisponibleManager.showPnlHorariocatedraticoModificar(usuario,registroh);
        }
    }
    @FXML
    private void BuscarHorariocatedratico(ActionEvent event){
        this.registro = (Catedratico) this.cmbCatedratico.getValue();
        cargarTablaHorarioFiltrado();
        
    }
    @FXML
    private void registrarHorariocatedratico(ActionEvent event){
       horarioDisponibleManager.showPnlHorariocatedraticoRegistro(usuario,registro);
    }
    @FXML
    private void BorrarHorariocatedratico(ActionEvent event){
       Horariocatedratico registroh = tblHorarioDisponible.getSelectionModel().getSelectedItem();
        if(registroh == null){
            JOptionPane.showMessageDialog( null, "Dede selecionar un dato","Mensaje", JOptionPane.INFORMATION_MESSAGE );
         }
        else{
            int confirmado = JOptionPane.showConfirmDialog(   null,  "Desea realmente eliminarlo" );
            if (JOptionPane.OK_OPTION == confirmado){
                registroh.setAnulado(Boolean.TRUE);
                IHorarioCatedratico nuevo = new IHorarioCatedratico();
                nuevo.modificar(registroh);
            }                        
        }
        horarioDisponibleManager.abrirPanelHorarioDisponible(usuario,registro); 
    }
    /*public void cargarTablaHorario(){
      HorarioCatedraticoModel HorarioModel = new HorarioCatedraticoModel(null); 
        tblHorarioDisponible.setItems(HorarioModel.getPersonData());
        diaColumna.setCellValueFactory(new PropertyValueFactory<Horariocatedratico, String>("dia"));
    }*/
    public void cargarTablaHorarioFiltrado(){
      HorarioCatedraticoModel HorarioModel = new HorarioCatedraticoModel(registro.getNumeroCatedratico()); 
        tblHorarioDisponible.setItems(HorarioModel.getPersonData());
        diaColumna.setCellValueFactory(new PropertyValueFactory<Horariocatedratico, String>("dia"));
    }
    public void cargarCatedratico(){
        this.cmbCatedratico.setPromptText("Catedratico");
         ICatedratico manejo = new ICatedratico();
        this.cmbCatedratico.getItems().clear();
        this.cmbCatedratico.getItems().addAll(manejo.mostrarTodo());
        if(registro==null){ this.cmbCatedratico.setValue(this.cmbCatedratico.getItems().get(0));
        }
        else
        { this.cmbCatedratico.setValue(registro);            
        }
        
        this.registro = (Catedratico) this.cmbCatedratico.getValue();
        cargarTablaHorarioFiltrado();
     }
    
}
